package com.ryder.petmatediarybackend.common.config.web;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.crypto.argon2.Argon2PasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;

/**
 * 描述: 加密Bean - 使用的argon2id
 *
 * @author Ryder
 * @version 1.0
 * @since 1.0
 * 更新日期: 2025/10/25
 */
@Configuration
public class SecurityConfig {

    @Bean
    public PasswordEncoder passwordEncoder() {

        // 默认参数为：
        //盐长度：16 bytes
        //哈希长度：32 bytes
        //并行线程数：1
        //内存使用：65536 KB（64MB）
        //迭代次数：2
        return new Argon2PasswordEncoder(16, 32, 1, 32768, 2); // 默认配置已足够安全
    }
}
